package com.aaron.socket.utils;

import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;

import com.aaron.socket.utils.constant.UtilsConstants;
import com.aaron.socket.utils.interfaces.I18MessageInter;

/**
 * 
 * @类名称：I18MessageUtils
 * @类描述：
 * @创建人：aaron
 * @修改人：
 * @修改时间：2014年5月11日 下午12:55:31
 * @修改备注：
 * @version:
 */
public class I18MessageUtils implements I18MessageInter
{

    /**
     * 日志对象
     */
    private final static Logger logger = Logger.getLogger(I18MessageUtils.class
            .getName());

    /**
     * 本地语言支持对象
     */
    private static Locale locale = null;

    /**
     * 国际化资源绑定对象
     */
    private static ResourceBundle messages = null;

    /**
     * 构建一个对象
     */
    private static I18MessageUtils i18MessageUtils = new I18MessageUtils();

    /**
     * 获取实例
     * 
     * @方法名：getInstance
     * @参数：@return
     * @返回：I18MessageUtils
     * @exception
     * @since
     */
    public static I18MessageUtils getInstance()
    {
        return i18MessageUtils;
    }

    private I18MessageUtils()
    {

    }

    static
    {
        logger.log(Level.INFO, "开始加载语言环境");
        // 默许中文
        locale = new Locale(UtilsConstants.UTILS_LANGUAGE,
                UtilsConstants.UTILS_COUNTRY);
        messages = ResourceBundle.getBundle(ConfigFilePath.getpackagesPath()
                + UtilsConstants.UTILS_BASE_RES, locale);
    }

    @Override
    public String getMessage(String target)
    {
        try
        {
            // TODO Auto-generated method stub
            return messages.getString(target);
        } catch (MissingResourceException e)
        {
            logger.log(Level.SEVERE,
                    messages.getString("utils.message.log.NoKeyInFile")
                            + "[ " + target + " ]");
            return "";
        }
    }
}
